package com.example;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

// 生成二维码测试
@SpringBootTest
public class QrCodeTest {

    // 需要提前引入相应依赖
    @Test
    public void test() {
        // 生成指定url对应的二维码到文件，宽和高都是300像素
        QrCodeUtil.generate("https://hutool.cn/", 300, 300, FileUtil.file("~/图片/QrCode/qrcode.jpg"));
    }

    // 生成带logo的二维码
    @Test
    public void test2() {
        QrCodeUtil.generate(//
                "http://hutool.cn/", // 二维码内容
                QrConfig.create().setImg("~/图片/QrCode/logo.png"), // 附带logo
                FileUtil.file("~/图片/QrCode/qrcodeWithLogo.jpg") // 写出到的文件
        );
    }

    // 调整纠错级别,很多时候，二维码无法识别，这时就要调整纠错级别。
    @Test
    public void test3() {
        QrConfig config = new QrConfig();
        // 高纠错级别
        config.setErrorCorrection(ErrorCorrectionLevel.H);
        QrCodeUtil.generate("https://hutool.cn/", config, FileUtil.file("~/图片/QrCode/qrcodeCustom.jpg"));
    }

    // 识别二维码
    @Test
    public void test4() {
        // decode -> "http://hutool.cn/"
        String decode = QrCodeUtil.decode(FileUtil.file("~/图片/QrCode/qrcode.jpg"));
        System.out.println(decode);
    }
}
